import pandas as pd
import glob
import xlwt
import csv
import os

# 获取当前目录下所有的xlsx文件
xlsx_files = glob.glob('*.xlsx')

# 创建一个新的文件夹来保存转换后的文件
new_folder = './转换之后'
if not os.path.exists(new_folder):
    os.makedirs(new_folder)

# 遍历所有的xlsx文件
for xlsx_file in xlsx_files:
    # 检查文件是否已经被转换
    xls_file = os.path.join(new_folder, xlsx_file.replace('.xlsx', '.xls'))
    if os.path.exists(xls_file):
        print(f"文件 {xlsx_file} 已经被转换，跳过。")
        continue

    # 读取xlsx文件
    df = pd.read_excel(xlsx_file)

    # 将xlsx文件转换为csv文件
    csv_file = xlsx_file.replace('.xlsx', '.csv')
    df.to_csv(csv_file, index=False, encoding='utf-8')

    # 打开CSV文件
    with open(csv_file, newline='', encoding='utf-8') as csvfile:
        reader = csv.reader(csvfile)

        # 跳过标题行
        next(reader)

        # 读取数据
        data = []
        for row in reader:
            data.append([
                row[0],  # 20231226
                row[1],  # 型号
                row[2],  # 送货数量
                row[6]  # 送货通知单
            ])

    # 创建一个Excel工作簿
    new_workbook = xlwt.Workbook()

    # 添加一个工作表
    new_worksheet = new_workbook.add_sheet('供应商供货清单')

    # 设置表头和其他信息
    info = [
        ('发运编号：', '', '', '', '', '', '客户：', '长春富维伟世通汽车电子有限公司', '', '', ''),
        ('供应商', '', '', '', '', '', '采购订单编号：', '', '', '', ''),
        ('供应商地址：', '', '', '', '', '', '收货地址：', '', '', '', ''),
        ('序号', '零件号', '零件名称', '到货数量', '单位', '使用车型', '到货包装数', '标准包装数', '批次', '送货通知单号', '备注')
    ]

    font_style = xlwt.easyxf('font: height 280, bold on;')  # 设置字体大小为14，加粗
    borders = xlwt.Borders()  # 创建边框对象
    borders.left = xlwt.Borders.THIN
    borders.right = xlwt.Borders.THIN
    borders.top = xlwt.Borders.THIN
    borders.bottom = xlwt.Borders.THIN
    font_style.borders = borders  # 将边框应用到字体样式粗

    # 写入表头和其他信息
    for row, row_data in enumerate(info):
        for col, cell_data in enumerate(row_data):
            new_worksheet.write(row + 1, col, cell_data, font_style)  # 注意这里的 row + 1 和 font_style

    for col in range(11):  # 设置所有列的宽度为15个字符宽度
        new_worksheet.col(col).width = 256 * 23
    # 合并第一行单元格，并将文本居中
    title_style = xlwt.easyxf(
        'align: horiz center, vert center; font: height 280, bold on;')  # 注意这里的 align: horiz center, vert center;
    new_worksheet.write_merge(0, 0, 0, 10, '供应商供货清单（国内供应商）', title_style)

    # 写入提取到的数据
    font_style = xlwt.easyxf('font: height 280;')  # 字体大小为14，字体高度为字体大小的20倍
    for index, row_data in enumerate(data):
        new_worksheet.write(index + 5, 0, index + 1, font_style)
        new_worksheet.write(index + 5, 1, row_data[1], font_style)
        new_worksheet.write(index + 5, 2, row_data[0], font_style)
        new_worksheet.write(index + 5, 3, row_data[2], font_style)
        new_worksheet.write(index + 5, 9, row_data[3], font_style)

    # 保存Excel文件
    new_workbook.save(xls_file)
